package com.ruoyi.project.modules.page.service;

import com.ruoyi.common.core.domain.Ztree;
import com.ruoyi.project.modules.fileInfo.domain.FileInf;
import com.ruoyi.project.modules.interfaceinfo.domain.CategoryPageDto;
import com.ruoyi.project.modules.interfaceinfo.domain.InterfaceInfo;
import com.ruoyi.project.modules.page.domain.Page;
import com.ruoyi.project.modules.page.domain.PageInterfaceDto;

import java.util.List;

/**
 * 页面Service接口
 * 
 * @author smallrain
 * @date 2021-11-06
 */
public interface IPageService 
{
    /**
     * 查询页面
     * 
     * @param id 页面主键
     * @return 页面
     */
    public Page selectPageById(Long id);

    /**
     * 查询页面列表
     * 
     * @param page 页面
     * @return 页面集合
     */
    public List<Page> selectPageList(Page page);

    /**
     * 新增页面
     * 
     * @param page 页面
     * @return 结果
     */
    public int insertPage(Page page);

    /**
     * 修改页面
     * 
     * @param page 页面
     * @return 结果
     */
    public int updatePage(Page page);

    /**
     * 批量删除页面
     * 
     * @param ids 需要删除的页面主键集合
     * @return 结果
     */
    public int deletePageByIds(String ids);

    /**
     * 删除页面信息
     * 
     * @param id 页面主键
     * @return 结果
     */
    public int deletePageById(Long id);

    /**
     * 查询页面树列表
     * 
     * @return 所有页面信息
     */
    public List<Ztree> selectPageTree();

    List<Page> pageListByInterfaceId(List<Long> interfaceIds);

    List<FileInf> selectPageFileByInterfaceId(Long interfaceId);

    void addImg(Page page);

    List<Long> tableList(List<Long> interfaceIds);

    /**
     * 查询页面列表
     *
     * @param page 参数
     * @return 页面集合
     */
    List<Page> selectPageListV2(Page page);

    List<CategoryPageDto> queryPageAndInterface(Long categoryId);

    void updatePageInterfaceSort(List<PageInterfaceDto> pageInterfaceDtoList);

    List<InterfaceInfo> queryInterfaceByPageId(Long pageId);
}
